草庐IT

c++ - 按模式分割 vector

全部标签

c - 将 cgo 与 typedef 变量一起使用

由于现有的库和速度,我正在创建一个项目,该项目使用我用C编写的密码学。尝试与Cgo交互时,我在使用C中创建的typedef时遇到了一些问题。下面是一个示例:typedefunsignedcharec_scalar[32];我能够成功创建ec_point变量,并使用接受ec_point*的函数。但是,每当我尝试使用通过普通ec_point传递的函数时,我都会收到错误消息:cannotusepk2(typeC.ec_scalar)astype*C.ucharinargumentto_Cfunc_secret_to_public我似乎找不到可以轻松转换它的方法。我也不想重构我的代码来接受ec

c - 将 C 翻译成 Golang。如何分配内存以匹配 C?

所以我正在翻译我在C中创建的程序。这个程序的目标是简单地从文件中读取矩阵,以稀疏行格式压缩矩阵,然后计算矩阵vector乘积。这是C语言的程序片段。//ReadtheMatrixMarketfileandinitializeaCSRformattedmatrix.csr_load_matrix(fileName,&compressedSparseMatrix);//Setthecorrectvaluestothestructandcreatethememoryallocation.double*x;double*y;x=malloc(compressedSparseMatrix.col

go - 如何在 Go 中自动生成 Avro 模式?

我正在尝试将Avro和SchemaRegistry集成到我们的Kafka数据管道中。现在它在Go服务内部看起来像获取数据->将数据编码为JSON->写入Kafka我想以同样的方式使用avro模式生成模式->在模式注册表中更新模式->获取数据->编码为Avro->写入Kafka但是有几个问题:如何从Go类自动生成架构?我应该如何检查架构与架构注册表的兼容性? 最佳答案 有几种方法可以从Avro创建go类。你试过这个吗https://github.com/actgardner/gogen-avro?UsageTogenerateGoso

go - 自定义构建的 JSON 模式未正确验证

我有一个自定义构建的JSON模式,它只有几个顶级。这里的问题是它没有将所有内容都验证到100%。例如,它仅检测到4个字段中的2个,并且必填字段根本不起作用,附加属性也不起作用,等等。我将thislibrary用于我的json模式。{"users":{"PUT":{"definitions":{},"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://example.com/root.json","type":"object","title":"TheRootSchema","required":["Displ

c - 在 libpango 中调用 pango_cairo_font_map_get_default() 时出现 "GLib-GObject-CRITICAL"的原因是什么?

这是一道关于gtk/glib/libpango/libcairo的概念题。让我们直奔问题。我正在用一位前同事用Go编写的旧C库进行包装,在C代码调用的某处pango_cairo_font_map_get_default()获取由libpango维护的默认font_map。包装基本上是从Go域进入C域(外部函数接口(interface))和C端使用pthread创建一个线程最终调用pango_cairo_font_map_get_default。最初,在纯C端一切正常。包装后,C代码卡在调用pango_cairo_font_map_get_default()printf("beforec

c - 通过Cgo访问aerospike C客户端报错

我正在尝试学习Cgo,所以我尝试从Cgo访问aerospike客户端packagemain//#cgoCFLAGS:-g-Wall//#include//#include//#include"aerospike-client-c/examples/put/example_utils.h"import"C"import("unsafe")funcmain(){retvals:=C.putitnew()_=retvals}但我遇到以下错误。(请注意,当我执行make和makerun时,C程序运行成功)。undefinedreferenceto`example_get_opts'./aero

go - 如何打印目录中文件的内容但忽略以写入模式打开的文件?

我有一个goroutine,它定期检查目录中的新文件,然后打印文件的内容。然而,还有另一个goroutine创建一个文件,将内容写入其中,然后保存文件。如何忽略目录中以WRITE模式打开的文件?示例代码:for{fileList,err:=ioutil.ReadDir("/uploadFiles")iferr!=nil{log.Fatal(err)continue}for_,f:=rangefileList{log.Println("File:",f.Name())goprintContents(f.Name())}time.Sleep(time.Second*5)}在printCon

postgresql - 使用 xo 从 postgres 数据库表模式生成 DTO 结构

我只是想知道是否有人使用过xo.我有一个Postgres数据库,里面有一堆表和东西。我似乎无法使用xo从postgres表结构生成DTOstruct。这个内置的xotemplate似乎创建了一个struct,我相信xo默认使用内置模板,但我在运行时得到的都是xo--verbose--suffix'.go'pgsql://myusername:mypass@localhost:myport/mydb?sslmode=disable-ointernal/qo/models-pqo是一堆与我的项目或我的数据库中的模式完全无关的文件。 最佳答案

正则表达式以点|分号空间分割但忽略 url 例如

我正在尝试解析和匹配大量法律文本,将其全部拆分成单独的句子。我有以下正则表达式,它只适用于几行简单的文本:[^\.\!\?\;\n]*[\.\!\?\;\n](\s+)!和?或在这里非常无关紧要但是。和;因为分隔符在我尝试处理的文本中很常见。问题是上面的正则表达式只是找到那些后跟空格字符的定界符。例如,以下文本将无法正确匹配:MemberStatelaworpursuanttocontractwithahealthprofessionalandsubjecttotheconditionsandsafeguardsreferredtoinparagraph3;processingisne

c - Golang cgo *C.int 大小差异

我正在探索CGO,我遇到了一个怪癖,在go运行时中C.int的大小是8个字节,但Cint是4个字节。我知道Goint可以是64位或32位,具体取决于体系结构,而Cint始终是32位。是有一种标准方法可以告诉go对C.int类型使用4个字节吗?我无法找到处理此问题的文档。因此,代码无法按预期运行。它基本上将低端添加到第一个int的高端。它从不引用传递的第二个int。提前致谢。实际输出:0xc00001a0b00xc00001a0b80xc00001a0b00xc00001a0b41990199主.gopackagemain/*intaddNums(int*nums);*/import"C